Technical Note TN2020
Browser Plug-ins for Mac OS X

目次

このテクニカルノートでは、Mac OS Xにおけるブラウザプラグインのユニークな特徴について説明します。以下の作業を行う際にお読みください。

- Mac OS Xのブラウザを開発する
- Mac OS Xにブラウザを移植する
- Mac OS Xのブラウザプラグインを開発する
- Mac OS Xにブラウザプラグインを移植する

このテクニカルノートは、Netscape形式のブラウザプラグインとMac OS XのCFMライブラリの開発方法についての知識をお持ちのデベロッパ向けに書かれています。

[2001年5月31日]






概要

Mac OS Xのブラウザプラグインは、Netscapeが発表した従来のMac OSと同じ基本的なプラグインアーキテクチャを採用しています。ブラウザプラグインはCFM(Code Fragment Manager)ライブラリとして実装されています。つまり、ブラウザとプラグイン間の呼び出しはすべてCFMライブラリ呼び出し規約と仮定します。ブラウザとプラグイン間の呼び出しはUPPではなく、単純なProcPtrを使って行われます。

先頭に戻る



Mac OSの以前のバージョンから必要な変更点

Mac OS XのブラウザプラグインはMac OS 7、8、および9のブラウザプラグインと似ていますが、以下の点が異なっています。

  • CarbonプラグインはInterfaceLibやQuickTimeLibなどではなく、CarbonLibにリンクする必要があります。
  • すべてのCarbonプラグインには、IDゼロの'carb'リソースが必要です(このリソースにはデータが含まれている必要はありません)。
  • プラグインのメインエントリーポイントはルーチンディスクリプタ「mainRD」ではなく、「main」関数になります(Mac OS XのCarbonにはルーチンディスクリプタはありません)。
  • ブラウザとプラグイン間の呼び出しはUPPではなく、単純なProcPtrを使います。
  • Carbonプラグインのファイルタイプは、'NSPL'ではなく'BRPL'になります。この変更は、すでにリリースされているInterfaceLibブラウザとインストーラが、Carbon化されたプラグインを使用すること、および検索しようとすることを防止するために設計されました。

先頭に戻る



その他の変更点

プラグインはシンプルなCFMライブラリでもかまいませんが、パッケージ、またはパッケージ化されたデータフォークオンリーファイルとしてもビルドできます。非HFSファイルシステムにもインストールできるので、パッケージ化されたデータフォークオンリーファイルが推奨されます。従来のMac OSでは、多くのブラウザがプラグインをブラウザ直下のディレクトリだけでなく、システムフォルダの“インターネットプラグイン”フォルダ内まで検索します。Mac OS Xでは、プラグインは/Library/Internet Plug-Insディレクトリにだけ格納してください。ディレクトリのロケーションは、vRefNumにはkLocalDomain(-32765)、フォルダタイプはkInternetPlugInFolderType'fnet')と指定して、FindFolderを使ってプログラム的に決定することができます。

先頭に戻る



参考文献

コードのCarbon化に関する一般的な情報は、テクニカルノート2003を参照してください。また、従来のMacブラウザプラグインの開発の詳細については、Netscapeのプラグインドキュメンテーションをご覧ください。

先頭に戻る